<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <title>Arduino Reference - Available </title>
  <link rel="shortcut icon" type="image/x-icon" href="http://arduino.cc/en/favicon.png">
  <link rel='stylesheet' href='arduinoWideRender.css' 
type='text/css' />
    <!--HeaderText--><style type='text/css'><!--
  ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
  code { white-space: nowrap; }
  .vspace { margin-top:1.33em; }
  .indent { margin-left:40px; }
  .outdent { margin-left:40px; text-indent:-40px; }
  a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
  a.createlink { text-decoration:none; position:relative; top:-0.5em;
    font-weight:bold; font-size:smaller; border-bottom:none; }
  img { border:0px; }
  .editconflict { color:green; 
  font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }

  table.markup { border: 2px dotted #ccf; width:90%; }
  td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
  td.markup1 { border-bottom: 1px solid #ccf; }
  div.faq { margin-left:2em; }
  div.faq p.question { margin: 1em 0 0.75em -2em; font-weight:bold; }
  div.faq hr { margin-left: -2em; }
   
    .frame 
      { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
    .lfloat { float:left; margin-right:0.5em; }
    .rfloat { float:right; margin-left:0.5em; }
a.varlink { text-decoration:none; }
/**
 * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
 * (http://qbnz.com/highlighter/ and http://geshi.org/)
 */
.arduino  {font-family:monospace;}
.arduino .imp {font-weight: bold; color: red;}
.arduino .kw1 {color: #CC6600;}
.arduino .kw2 {color: #006699;}
.arduino .kw3 {color: #CC6600; font-weight: bold;}
.arduino .co1 {color: #7E7E7E; font-style: italic;}
.arduino .co2 {color: #7E7E7E;}
.arduino .coMULTI {color: #7E7E7E; font-style: italic;}
.arduino .es0 {color: #000099; font-weight: bold;}
.arduino .es1 {color: #000099; font-weight: bold;}
.arduino .es2 {color: #660099; font-weight: bold;}
.arduino .es3 {color: #660099; font-weight: bold;}
.arduino .es4 {color: #660099; font-weight: bold;}
.arduino .es5 {color: #006699; font-weight: bold;}
.arduino .br0 {color: #000000;}
.arduino .sy0 {color: #000000;}
.arduino .st0 {color: #0066CC;}
.arduino .nu0 {color: #000000;}
.arduino .nu6 {color: #208080;}
.arduino .nu8 {color: #208080;}
.arduino .nu12 {color: #208080;}
.arduino .nu16 {color:#800080;}
.arduino .nu17 {color:#800080;}
.arduino .nu18 {color:#800080;}
.arduino .nu19 {color:#800080;}
.arduino .me1 {color: #ff1493;}
.arduino .me2 {color: #ff1493;}
.arduino span.xtra { display:block; }

.sourceblocklink {
  text-align: right;
  font-size: smaller;
}
.sourceblocktext {
  padding: 0.5em;
  color: #000000;
  background-color: #ffffff;
}
.sourceblocktext div {
  font-family: monospace;
  font-size: small;
  line-height: 1;
  height: 1%;
}
.sourceblocktext div.head,
.sourceblocktext div.foot {
  font: italic medium serif;
  padding: 0.5em;
}

--></style>  <meta name='robots' content='index,follow' />

  <meta name="verify-v1" content="TtxFIEJAB6zdJ509wLxjnapQzKAMNm9u0Wj4ho6wxIY=" />
</head>
<body>
<div id="page">
  <!--PageHeaderFmt-->
  <div id="pageheader">
    <div class="title"><a href='http://arduino.cc/en'>Arduino</a></div>
  </div>
  <!--/PageHeaderFmt-->

  <!--PageLeftFmt-->
  <div id="pagenav">
    <div id="navbar">
  	<p><a class='wikilink' href='http://arduino.cc/en/Main/Buy'>Buy</a>
<a class='wikilink' href='http://arduino.cc/en/Main/Software'>Download</a>
<a class='wikilink' href='Guide_index.html'>Getting Started</a>
<a class='wikilink' href='http://arduino.cc/en/Tutorial/HomePage'>Learning</a>
<a class='wikilink' href='index.html'>Reference</a>
<a class='wikilink' href='http://arduino.cc/en/Main/Hardware'>Hardware</a>
<a class='wikilink' href='FAQ.html'>FAQ</a>
</p>
<p class='vspace'></p>

    </div>
  </div>
  <!--/PageLeftFmt-->

  <div id="pagetext">
  <!--PageText-->
<div id='wikitext'>
<p><a class='wikilink' href='Serial.html'>Serial</a>
</p>
<p class='vspace'></p><h2>available()</h2>
<h4>Description</h4>
<p>Get the number of bytes (characters) available for reading from the serial port.  This is data that's already arrived and stored in the serial receive buffer (which holds 64 bytes). available() inherits from the <a class='wikilink' href='Stream.html'>Stream</a> utility class.
</p>
<p class='vspace'></p><h4>Syntax</h4>
<p>Serial.available()
</p>
<p class='vspace'></p><p><em>Arduino Mega only:</em> <br />Serial1.available() <br />Serial2.available() <br />Serial3.available()
</p>
<p class='vspace'></p><h3>Parameters</h3>
<p>none
</p>
<p class='vspace'></p><h4>Returns</h4>
<p>the number of bytes available to read
</p>
<p class='vspace'></p><h3>Example</h3>
<p>
<div class='sourceblock ' id='sourceblock1'>
  <div class='sourceblocktext'><div class="arduino"><span class="kw1">int</span> incomingByte <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> &nbsp; <span class="co1">// for incoming serial data</span><br />
<br />
<span class="kw1">void</span> <span class="kw3">setup</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Serial</span>.<span class="kw1">begin</span><span class="br0">&#40;</span><span class="nu0">9600</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp; <span class="co1">// opens serial port, sets data rate to 9600 bps</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="kw1">void</span> <span class="kw3">loop</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// send data only when you receive data:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw1">Serial</span>.<span class="kw1">available</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// read the incoming byte:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; incomingByte <span class="sy0">=</span> <span class="kw1">Serial</span>.<span class="kw1">read</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// say what you got:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Serial</span>.<span class="kw1">print</span><span class="br0">&#40;</span><span class="st0">&quot;I received: &quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Serial</span>.<span class="kw1">println</span><span class="br0">&#40;</span>incomingByte<span class="sy0">,</span> <span class="kw2">DEC</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div></div>
  <div class='sourceblocklink'><a href='Serial_Available?action=sourceblock&amp;num=1.html' type='text/plain'>[Get Code]</a></div>
</div>

</p>
<p class='vspace'></p><p><strong>Arduino Mega example:</strong>
</p>
<p class='vspace'></p><p>
<div class='sourceblock ' id='sourceblock2'>
  <div class='sourceblocktext'><div class="arduino"><span class="kw1">void</span> <span class="kw3">setup</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="kw1">Serial</span>.<span class="kw1">begin</span><span class="br0">&#40;</span><span class="nu0">9600</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">Serial1</span>.<span class="kw1">begin</span><span class="br0">&#40;</span><span class="nu0">9600</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="br0">&#125;</span><br />
<br />
<span class="kw1">void</span> <span class="kw3">loop</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; <span class="co1">// read from port 0, send to port 1:</span><br />
&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw1">Serial</span>.<span class="kw1">available</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">int</span> inByte <span class="sy0">=</span> <span class="kw1">Serial</span>.<span class="kw1">read</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">Serial1</span>.<span class="kw1">print</span><span class="br0">&#40;</span>inByte<span class="sy0">,</span> <span class="kw2">BYTE</span><span class="br0">&#41;</span><span class="sy0">;</span> <br />
<br />
&nbsp; <span class="br0">&#125;</span><br />
&nbsp; <span class="co1">// read from port 1, send to port 0:</span><br />
&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw1">Serial1</span>.<span class="kw1">available</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">int</span> inByte <span class="sy0">=</span> <span class="kw1">Serial1</span>.<span class="kw1">read</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">Serial</span>.<span class="kw1">print</span><span class="br0">&#40;</span>inByte<span class="sy0">,</span> <span class="kw2">BYTE</span><span class="br0">&#41;</span><span class="sy0">;</span> <br />
&nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div></div>
  <div class='sourceblocklink'><a href='Serial_Available?action=sourceblock&amp;num=2.html' type='text/plain'>[Get Code]</a></div>
</div>

</p>
<p class='vspace'></p><h4>See also</h4>
<ul><li><a class='wikilink' href='Serial_Begin.html'>begin</a>()
</li><li><a class='wikilink' href='Serial_End.html'>end</a>()
</li><li><a class='selflink' href='Serial_Available.html'>available</a>()
</li><li><a class='wikilink' href='Serial_Read.html'>read</a>()
</li><li><a class='wikilink' href='Serial_Peek.html'>peek</a>()
</li><li><a class='wikilink' href='Serial_ParseInt.html'>parseInt</a>()
</li><li><a class='wikilink' href='Serial_Flush.html'>flush</a>()
</li><li><a class='wikilink' href='Serial_Print.html'>print</a>()
</li><li><a class='wikilink' href='Serial_Println.html'>println</a>()
</li><li><a class='wikilink' href='Serial_Write.html'>write</a>()
</li><li><a class='wikilink' href='SerialEvent.html'>SerialEvent</a>()<br />
</li><li><a class='wikilink' href='StreamAvailable.html'>Stream.available</a>()
</li></ul><p class='vspace'></p><p><a class='wikilink' href='index.html'>Reference Home</a>
</p>
</div>


  </div>

  <!--PageFooterFmt-->
  <div id="pagefooter">
&copy;Arduino | 
  <a href='Serial_Available?action=edit.html'>Edit Page</a> | <a href='Serial_Available?action=diff.html'>Page History</a> | <a href='Serial_Available?action=print.html' target='_blank'>Printable View</a> | <a href='http://arduino.cc/en/Site/AllRecentChanges'>All Recent Site Changes</a>
  </div>
  <!--/PageFooterFmt-->

</div>
</body>
</html>
